home *** CD-ROM | disk | FTP | other *** search
- ===========
- MANUALS.TXT
- ===========
-
- This file contains updates to the Delphi books, online Help, and
- interactive tutors and lists online text files.
-
- CONTENTS:
- 1. ONLINE TEXT FILES
-
- 2. DELPHI BOOKS:
- Delphi User's Guide
- Delphi Component Writer's Guide
- Delphi Database Application Developer's Guide
- InterBase Language Reference
- Local InterBase Server User's Guide
-
- 3. ONLINE HELP
-
- ===========================================================================
- 1. ONLINE TEXT FILES
- The following online text files provide additional
- documentation:
-
- INSTALL.TXT - Located in \DELPHI, contains information on
- troubleshooting installation and
- configuration problems.
- README.TXT - Located in \DELPHI, includes late-breaking
- information, compatibility notes, a list of
- all example programs, and information on how
- to get help from Borland.
- READRS.TXT - Located in \RPTSMITH, README for ReportSmith.
- READIB.TXT - Located in \IBLOCAL, README for the Local
- InterBase Server.
- READLINK.TXT - Located in \IDAPI, README for the Borland
- Database Engine.
- READDBD.TXT - Located in \DBD, README for the Database
- Desktop.
- FILELIST.TXT - Located in \DELPHI, contains a list of all
- files installed by the SETUP program.
- DEPLOY.TXT - Located in \DELPHI, contains important
- information about licensing and
- redistribution of Delphi, ReportSmith,
- and InterBase applications.
- MANUALS.TXT - This file.
- INIFILE.TXT - Located in \DELPHI\DOC, tells you how to
- customize Delphi via settings in
- \WINDOWS\DELPHI.INI. Also provides section
- naming conventions for component writers
- wishing to store and retrieve design-time
- information in DELPHI.INI.
- ASCIIDRV.TXT - Located in \DELPHI\DOC, provides information
- about the ASCII text driver for the BDE.
- VB2DELPH.WRI - Located in \DELPHI\DOC, this technical paper
- provides hints for Visual Basic who are
- converting their projects to Delphi.
- TOOLINTF.PAS - Defines the Delphi Open Tools API which
- allows your custom version control .DLL or
- expert to interface with the Delphi
- environment.
- VCSINTF.PAS - Defines the interface you must provide so
- Delphi can call your custom version control
- DLL's entry points.
- VIRTINTF.PAS - Base classes for your custom version control
- and experts to inherit from.
- EXPTINTF.PAS - Defines the interface you must provide so
- Delphi can call your expert's entry points.
- ISTREAMS.PAS - Defines a virtual stream interface for
- communicating data to the Delphi environment.
- DBCTRLS.PAS - The source code to the DBCTRLS unit to help
- you understand how to write data aware
- controls.
-
- 2. DELPHI BOOKS
-
- Delphi User's Guide
- ===================
-
- Legal Page:
- -----------
- The REDIST.TXT file noted on this page is now called DEPLOY.TXT.
-
- Chapter 5, Writing Object Pascal Code
- -------------------------------------
- Pages 168, 169, 170: To successfully run the examples on these
- pages, add WinCrt to the Uses clause.
-
- Chapter 10, Text Editor Example
- -------------------------------
- Page 308: The example step starting with "Add Printers..."
- should read: "Add Printers and WinCrt to the uses clause".
-
- Chapter 15, OLE example
- -----------------------
- Page 384: Figure 14.2, the DDE Info Dialog box, has changed in
- the following ways: App is now labeled DdeService, Topic is now
- labeled DdeTopic, and a Help button is located in the lower right
- corner of the box.
-
- Page 385: The first sentence on this page, beginning with "The
- App and Topic boxes..." should read "The DDEService and DDETopic
- edit boxes...".
-
- The OLE example application has changed in the following ways:
- OLEObjectForm should have the following code attached to its
- OnClose event handler:
-
- procedure TOLEObjectForm.FormClose(Sender: TObject;
- var Action:TCloseAction);
- begin
- Action := caFree;
- end;
-
- Without this code, MDI child windows will minimize by default
- (instead of closing).
-
- Page 420: The call to PasteSpecialDlg in the Edit|Paste Special
- event handler should read:
-
- if PasteSpecialDlg(Self, OLEFrameForm.Fmts, 0, ClipFmt, DataHand,
- Info) then...
-
-
- Delphi Component Writer's Guide
- ===============================
-
- Chapter 1, Overview of component creation
- -----------------------------------------
- Page 11: In the last paragraph on the page, both references to
- TWinControl should be to TCustomControl.
-
- Chapter 10, Creating a graphic control
- --------------------------------------
- Pages 94 and 98:
- The Invalidate method does not take a parameter.
-
- Chapter 11, Customizing a grid
- ------------------------------
- Page 103:
- The last line in the Create constructor should read
-
- Options := Options - [goRangeSelect] + [goDrawFocusSelected];
-
- Page 107: The implementation of the IsLeapYear method is missing
- one of its parentheses. The correct implementation follows:
-
- function TSampleCalendar.IsLeapYear: Boolean;
- begin
- Result := (Year mod 4 = 0)
- and ((Year mod 100 <> 0)
- or (Year mod 400 = 0));
- end;
-
- The DaysThisMonth method implementation is missing the
- "TSampleCalendar." in front of its identifier.
-
- The identifier February in the implementation of DaysThisMonth
- should be the number 2.
-
- Chapter 12, Making a control data-aware
- ---------------------------------------
- Page 116: The Calendar component on the Samples page already has
- a ReadOnly property, so you do not need to add it if you start
- with TCalendar instead of TSampleCalendar.
-
- Page 117: The implementation of the UpdateCalendar method is
- missing the "TDBCalendar." in front of its identifier.
-
- Page 118: You must add the DB and DBTables units to the uses
- clause of the component's unit to access the data-awareness
- features.
-
-
- Delphi Database Application Developer's Guide
- =============================================
-
- Chapter 3, Using data access components and tools
- --------------------------------------------------
- Pages 68-69
- The description of OnCalcFields and AutoCalcFields in
- Chapter 3 is not correct. For the correct description, see
- online help.
-
- Page 79
- A dynamic set of TFields is created both at run time and
- design time if a persistent set of TFields is not created at
- design time with the Fields Editor.
-
- Chapter 6, Building a client/server application
- -----------------------------------------------
- The description in Chapter 6 of Connected,
- Database.KeepConnection and Session.KeepConnections is not
- correct. For the correct description, see online Help.
-
- New information: The Resync method of TDataset enables you to
- resynchronize datasets after direct calls to the Borland Database
- engine, or after entering data to make sure the new data is
- displayed in the form.
-
- ***
- To execute an SQL statement containing a parameter that you don't
- want to bind at run-time, precede the parameter name with a
- double colon (for example, ::Parameter1). This is only necessary
- in the rare case when you don't want the BDE to bind a value to
- the parameter, for example in creating a stored procedure with a
- TQuery.
-
- ***
- In a master-detail form, adding a new record to the detail table
- may cause a problem if there are linked NOT NULL fields in the
- detail table. In particular, Sybase servers will return an
- error. To avoid this, enter default values in the OnNewRecord
- event.
-
- ***
- There is a new type to encapsulate table locks:
-
- TLockType = (ltReadLock, ltWriteLock);
-
- TTable has two new methods that take a TLockType argument:
-
- procedure LockTable(LockType: TLockType);
- procedure UnlockTable(LockType: TLockType);
-
- These methods will lock the table and unlock the table,
- respectively. You can place multiple locks of different types on
- a table. For each lock placed, a corresponding call to
- UnlockTable with the same lock type is required or the table will
- remain locked. Read locks prevent other sessions from placing a
- write lock; placing a write lock prevents other sessions from
- placing ANY locks.
-
- An exception will be raised if the table is closed or the
- requested lock cannot be obtained. Locks only affect other
- sessions. For example two TTable components in the same session
- that refer to the same physical table share the same locks and a
- LockTable performed on one will not prevent access by the other.
-
- These methods are primarily intended for use with Paradox and
- dBASE tables. For dBASE tables, read locks are automatically
- promoted to write locks. For SQL tables, read and write are the
- same and the behavior varies according to the server.
-
- ***
- TStringField and TMemoField have a Boolean Transliterate
- property. When Transliterate is False, Delphi does not
- perform any ANSI/OEM conversion.
-
- ***
- TTable has a RenameTable method that renames the underlying
- database table (for Paradox and dBASE tables only). This method
- will rename all associated files (indexes, Blob files, and so
- on).
-
-
- InterBase Language Reference
- ============================
-
- The InterBase Language Reference and Data Definition Guides were
- created to accompany the InterBase Workgroup Server and contain
- features that are unsupported on the Local InterBase Workgroup
- Server. Refer to the READIB.TXT for a list unsupported features.
-
- The reserved word 'DISPLAY' is not included in the list of
- keywords in Appendix A of the InterBase Language Reference.
-
-
- Local InterBase Server User's Guide
- ===================================
-
- The dialog box that controls connecting to a database differs
- from the explanation present in the User's Guide. The User's
- Guide does not show the Local and Remote server buttons (Page
- 40). If those buttons are present, refer to the on-line help for
- information. Similarly, the discussion of creating a database
- should mention that a database can be created on a remote server
- as well as the local server (pages 40, 73).
-
- User Name and password are required for connection to a remote
- database server. Refer to the online help for information on
- connecting to remote databases.
-
- The discussion on the Server/Database Tree should mention both
- local and remote databases. When Server Manager is used with
- Local InterBase Server, only local branches of the tree are
- accessible (page 139). After a connection is made to a remote
- server, the databases on the remote server are shown in Server
- Manager windows.
-
- In Appendix C of the Local InterBase User's Guide (page 189), the
- first sentence of the second paragraph states, "The database
- (EMPLOYEE.GDB) is created with the data definition file,
- CREATEDB.SQL". That statement is no longer correct. The
- EMPLOYEE.GDB database is already built and included with Local
- InterBase Server. The user does not have to build it.
-
- 3. ONLINE HELP:
-
- Installation Help
- =================
- Help for the first Delphi Installation Dialog box lists Turbo
- Debugger as one of the products installed with Delphi. Turbo
- Debugger is not included with this version of Delphi.
-
- Run-Time Library information:
- =============================
- Run-Time Library examples that use Writeln: in order to use
- Writeln you must add WinCrt to the Uses clause.
-
- VCL information:
- ================
- Please note the following new VCL information:
-
- Cursor Property:
- ================
- The crNone property value hides the cursor and is not listed in
- the table in the "Cursor property" help topic:
-
- crNone = -1;
-
- Add Method of TFieldDefs:
- -------------------------
- Declaration:
- procedure Add(const Name: string; DataType: TFieldType; Size:
- Word; Required: Boolean);
-
- The value of the Required parameter initializes the
- TFieldDefs.Required property.
-
- Hints property of TDBNavigator:
- -------------------------------
- Declaration:
- property Hints: Tstrings;
-
- Description:
- The Hints property allows you to customize the help hints
- for the buttons on the database navigator. Each hint is
- a string. The first string in the string object becomes the
- Help Hint for the first button on the navigator. The seventh
- hint becomes the Help Hint for the seventh button (the Edit
- button).
- If you don't want to change the Help Hint for every
- button, enter an empty string (") for the Help Hint you want
- to stay the same, or simply leave the the line blank if you
- are using the string list property editor of the Object Inspector
- for the Hints property.
-
- ItemAtPos method of TTabSet
- ---------------------------
- Description:
- The declaration in the online help should read:
-
- function ItemAtPos(Pos: TPoint): Integer;
-
-
- GetDatabaseNames method of TSession:
- ------------------------------------
- Description:
- The GetDatabaseNames method clears the TStrings List parameter
- and fills it with the names of all BDE and application-specific
- aliases.
-
- FormCount property of TScreen:
- ------------------------------
- Description:
- Run-time and read only. The FormCount property value contains the
- number of forms in the TScreen.Forms property array.
-
- OnShowHint property of TApplication:
- ------------------------------------
- Description:
- The OnShowHint event occurs when the application is about to
- display a hint window for a Help Hint for a particular control.
- By writing an event handler for OnShowHint, you can change the
- appearance and behavior of the Help Hint. Use the HintStr, CanShow,
- and HintInfo parameters of the TShowHintEvent method pointer
- to modify the Help Hint and its window. The HintInfo parameter
- is a record of type THintInfo.
-
- Brush property of TCanvas
- -------------------------
- Description:
- When you make changes to a bitmap that a Brush is referencing,
- you need to force the Brush to update itself by setting its style
- to bsSolid and then reassigning the bitmap to the brush:
-
- Canvas.Brush.Bitmap := MyBitmap;
- ...
- MyBitmap.Canvas.FillRect(Rect(0, 0, 8, 8));
- ...
- Canvas.Brush.Style := bsSolid; { this line required }
- Canvas.Brush.Bitmap := MyBitmap;
-
- CallExitProcs procedure in SysUtils unit
- ----------------------------------------
- CallExitProcs executes all installed exit procedures. The exit
- procedures are executed in reverse order of definition, i.e. the
- last one installed is the first one to get executed. As the
- procedures are executed, they are removed from the exit procedure
- chain. Thus, following a call to CallExitProcs, the ExitProc
- variable (defined in the System unit) will be NIL.
-
- CallExitProcs is intended for use in the termination procedure of
- a DLL. Refer to the \DELPHI\DEMOS\DB\BDEDLL directory for an
- example of a DLL that uses CallExitProcs as part of its shutdown
- handling.
-
- Using StretchDIBits instead of Draw for bitmap printing
- -------------------------------------------------------
- Bitmap printing - When printing a bitmap, make sure to use the
- Windows API routine StretchDIBits. For example, here's a function
- that prints an arbitrary TBitmap at the specified X,Y location:
-
- procedure PrintBitmap(Bitmap: TBitmap; X, Y: Integer);
- var
- Info: PBitmapInfo;
- InfoSize: Integer;
- Image: Pointer;
- ImageSize: Longint;
- begin
- with Bitmap do
- begin
- GetDIBSizes(Handle, InfoSize, ImageSize);
- Info := MemAlloc(InfoSize);
- try
- Image := MemAlloc(ImageSize);
- try
- GetDIB(Handle, Palette, Info^, Image^);
- with Info^.bmiHeader do
- StretchDIBits(Printer.Canvas.Handle, X, Y, Width,
- Height, 0, 0, biWidth, biHeight, Image, Info^,
- DIB_RGB_COLORS, SRCCOPY);
- finally
- FreeMem(Image, ImageSize);
- end;
- finally
- FreeMem(Info, InfoSize);
- end;
- end;
- end;
- -----------------------------------------------------------------
-